home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga CD32 Gamer 4
/
Amiga CD32 Gamer Vol. 04 (1994-09)(Paragon Publishing)(Track 01 of 12)[!][CDR00222].iso
/
pd
/
billy_the_burglar
/
escape.amos
/
escape.amosSourceCode
Wrap
AMOS Source Code
|
1992-12-21
|
50KB
|
1,926 lines
'*********************************************************
'* *
'* THE GREAT ESCAPE OF BILLY BURGLAR *
'* --------------------------------- *
'* *
'* Copyright 1993 Richard Jobling and Grant McAllister *
'* *
'* Written using Amos Pro V1.00 *
'* *
'* Completed 29/06/93 *
'* *
'* The font used on the compiled version is on the disk. *
'* *
'* There is a cheat in the compiled version *
'* have you found it yet? *
'* *
'*********************************************************
Set Buffer 9
Amos Lock
Break Off
Close Workbench
Close Editor
Led Off
Dim PLAT_DIS(7),PLAT_ON(7)
Dim MV_PLAT_X(7),MV_PLAT_Y(7),MV_PLAT_ON(7)
Dim MV_PLAT_DIR_X(7),MV_PLAT_DIR_Y(7)
Global PLAT_DIS(),PLAT_ON()
Global MV_PLAT_X(),MV_PLAT_Y(),MV_PLAT_ON()
Global MV_PLAT_DIR_X(),MV_PLAT_DIR_Y()
Global CONTROL
Global X_SPD,Y_SPD
Global PLY_X,PLY_Y
Global OLD_PLY_X,OLD_PLY_Y
Global MOVE_FRAME,JOG_FRAME,PLY_FRAME
Global FULL_X_SPD,FULL_Y_SPD
Global FALL,X_MOVE
Global JUMP_FLAG,LANDED_FLAG
Global EDGE_FLAG,WOBBLE
Global SPOT_X,SPOT_Y
Global SPOT_SPD,SPOT_MOVE,SPOT_SLOW
Global SKID_FLAG,SKID_X,SKID_Y,SKID_FRAME,SKID_ADD
Global DEAD,TIME,DIFFICULTY,QUIT_FLAG
Global SCRL_TXT$,SCRL_POS,SCRL_SPD,SCRL_X,SKIP_FLAG
Default Palette 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
CHECK_FOR_NTSC
PD_MESSAGE
If SKIP_FLAG=0
TG_LOGO_SCENE
VERTICAL_SCROLL
PRISONER_SCENE
End If
BEGINNING:
SET_UP_SCROLLER
SET_UP_SCREEN_PIC
Repeat
MOVE_SCROLLER
Until Fire(1)
SHUT_DOWN_SCROLL
Track Load "Escape:Sound_Data/Ingame",3
Load "Escape:Sound_Data/SoundFX.Abk",5
Load "Escape:Graphic_Data/Sprites.Abk",1
LEVEL=0
DIFFICULTY=1
SET_SPOT_SPD[DIFFICULTY]
MOVE_ON_A_LEVEL:
Inc LEVEL
If LEVEL>8
LEVEL=1
Inc DIFFICULTY
SET_SPOT_SPD[DIFFICULTY]
End If
SET_UP_SCREEN
INIT
SET_UP_LEVEL[LEVEL]
LEVEL_START
Amal On
Track Play
Repeat
TEST_JOYSTICK
MOVE_PLATFORMS
TEST_FOR_PLATFORM
FIND_PLY_FRAME
FIND_NEW_CO_ORDS
SKID_PUFFS
CHECK_FOR_SPOT_COL
FIND_TIME
MOVE_ALL
CHECK_KEYBOARD
Until DEAD=1 or TIME=0 or QUIT_FLAG=1
If QUIT_FLAG=1
QUIT_SCENE
Goto BEGINNING
End If
If DEAD=1 and TIME>0
Track Stop
Repeat
MOVE_PLATFORMS
TEST_FOR_PLATFORM
FIND_PLY_FRAME
FIND_NEW_CO_ORDS
SPOT_Y=PLY_Y
SPOT_X=PLY_X
SKID_PUFFS
MOVE_ALL
CHECK_KEYBOARD
Until Y_SPD=0 and JUMP_FLAG=0
DEATH_SCENE
Goto BEGINNING
Else
If DIFFICULTY>2 and LEVEL=8
FINISHING_SCENE
Goto BEGINNING
Else
SURVIVED_SCENE
Goto MOVE_ON_A_LEVEL
End If
End If
Procedure SET_UP_SCREEN
Screen Open 0,320,256,32,Lowres
Screen Display 0,128,40,320,256
Curs Off : Flash Off : Hide : Cls 0
Double Buffer
Autoback 0
Update Off
Synchro Off
Set Bob 0,0,%10000,0
Set Bob 1,0,%1111,0
Set Bob 2,0,%1111,0
For C=3 To 10
Set Bob C,1,%1111,0
Next
For C=11 To 18
Set Bob C,0,%1111,0
Next
Priority Reverse On
End Proc
Procedure SET_SPOT_SPD[SPEED]
If SPEED=1
SPOT_SPD=1
SPOT_SLOW=0
End If
If SPEED=2
SPOT_SPD=3
SPOT_SLOW=1
End If
If SPEED=3
SPOT_SPD=2
SPOT_SLOW=0
End If
End Proc
Procedure INIT
For C=0 To 7
PLAT_DIS(C)=0
PLAT_ON(C)=0
MV_PLAT_X(C)=0
MV_PLAT_Y(C)=0
MV_PLAT_ON(C)=0
MV_PLAT_DIR_X(C)=0
MV_PLAT_DIR_Y(C)=0
Bob C+3,-100,-100,
Next
X_SPD=0
Y_SPD=0
PLY_X=0
PLY_Y=0
OLD_PLY_X=0
OLD_PLY_Y=0
MOVE_FRAME=2
JOG_FRAME=0
PLY_FRAME=0
FALL=0
X_MOVE=0
JUMP_FLAG=0
LANDED_FLAG=0
EDGE_FLAG=0
SPOT_X=160
SPOT_Y=256
SKID_FLAG=0
SKID_X=0
SKID_Y=0
SKID_FRAME=0
SKID_ADD=0
DEAD=0
TIME=1000
SPOT_MOVE=0
FULL_X_SPD=4
FULL_Y_SPD=8
QUIT_FLAG=0
End Proc
Procedure SET_UP_LEVEL[LEV]
If LEV=1 Then LEVEL_1
If LEV=2 Then LEVEL_2
If LEV=3 Then LEVEL_3
If LEV=4 Then LEVEL_4
If LEV=5 Then LEVEL_5
If LEV=6 Then LEVEL_6
If LEV=7 Then LEVEL_7
If LEV=8 Then LEVEL_8
End Proc
Procedure LEVEL_1
PLY_X=160
PLY_Y=96
OLD_PLY_X=160
OLD_PLY_Y=96
Reserve Zone 40
Set Zone 1,0,240 To 319,247
Set Zone 2,0,144 To 95,151
Set Zone 3,224,144 To 319,151
Set Zone 4,112,96 To 207,103
For Y=0 To 255 Step 16
For X=0 To 319 Step 16
Read IMAGE
Paste Bob X,Y,IMAGE+50
Next
Next
Data 14,15,$0,$0,$0,$0,14,15,$0,$0,$0,$0,14,15,$0,12,$0,$0,14,15
Data 16,17,$0,$0,$0,$0,16,17,$0,$0,$0,$0,16,17,$0,$0,$0,$0,16,17
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,13,$0,$0,$0,$0,$0,$0
Data $0,$0,$0,$0,13,$0,$0,$0,12,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $0,$0,12,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$8,$9,$0
Data $0,18,19,$0,$0,$0,$0,$3,$1,$1,$1,$1,$2,$0,$0,$0,$0,10,11,$0
Data $0,$0,$0,13,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,13,$0,$0,22,$0,$0,$0,$0,$0,$0,$0,$0
Data $1,$1,$1,$1,$1,$2,$0,$0,$0,$0,$0,$0,$0,$0,$3,$1,$1,$1,$1,$1
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $0,$0,$4,$5,12,$0,$0,$0,$0,$0,$0,$0,$0,$0,13,$0,$0,$0,$0,$0
Data $0,$0,$6,$7,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,20,21,$0,$0,$0,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,13,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PLAT_ON(0)=1
Set Zone 33,112,192 To 127,199
Bob 3,112,192,
PLAT_ON(1)=1
Set Zone 34,192,192 To 207,199
Bob 4,192,192,
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For C=0 To 7
Channel C To Bob C+11
Next
MV_PLAT_ON(0)=1
MV_PLAT_X(0)=96
MV_PLAT_Y(0)=144
Bob 11,MV_PLAT_X(0),MV_PLAT_Y(0),49
M$=""
M$=M$+" Start: "
M$=M$+" Move 96,0,48 "
M$=M$+" Move -96,0,48 "
M$=M$+" Jump Start "
Amal 0,M$
MV_PLAT_ON(1)=1
MV_PLAT_X(1)=80
MV_PLAT_Y(1)=96
Bob 12,MV_PLAT_X(1),MV_PLAT_Y(1),49
M$=""
M$=M$+" Start: "
M$=M$+" Move -64,-64,64 "
M$=M$+" Move 64,64,64 "
M$=M$+" Jump Start "
Amal 1,M$
MV_PLAT_ON(2)=1
MV_PLAT_X(2)=208
MV_PLAT_Y(2)=96
Bob 13,MV_PLAT_X(2),MV_PLAT_Y(2),49
M$=""
M$=M$+" Start: "
M$=M$+" Move 64,-64,64 "
M$=M$+" Move -64,64,64 "
M$=M$+" Jump Start "
Amal 2,M$
End Proc
Procedure LEVEL_2
PLY_X=160
PLY_Y=112
OLD_PLY_X=160
OLD_PLY_Y=112
Reserve Zone 40
Set Zone 1,0,240 To 319,247
Set Zone 2,0,176 To 63,183
Set Zone 3,256,176 To 319,183
Set Zone 4,0,112 To 63,119
Set Zone 5,96,112 To 223,119
Set Zone 6,256,112 To 319,119
Set Zone 7,0,48 To 63,55
Set Zone 8,256,48 To 319,55
For Y=0 To 255 Step 16
For X=0 To 319 Step 16
Read IMAGE
Paste Bob X,Y,IMAGE+50
Next
Next
Data $0,14,15,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,14,15,$0
Data $0,16,17,$0,$0,$0,13,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,16,17,$0
Data $0,$0,$0,$0,$0,$0,22,$0,$0,$0,12,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $1,$1,$1,$2,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$3,$1,$1,$1
Data $0,13,$0,$0,$0,$0,$0,$0,$0,$4,$5,$0,$8,$9,$0,$0,$0,$0,$0,$0
Data $0,$0,$0,$0,12,$0,$0,$0,$0,$6,$7,$0,10,11,$0,13,$0,$0,$0,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,$0,$0,$0
Data $1,$1,$1,$2,$0,$0,$3,$1,$1,$1,$1,$1,$1,$2,$0,$0,$3,$1,$1,$1
Data $0,14,15,$0,$0,$0,$0,$0,$0,14,15,$0,$0,$0,$0,$0,$0,14,15,$0
Data $0,16,17,$0,$0,$0,13,$0,$0,16,17,$0,$0,$0,$0,$0,$0,16,17,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $1,$1,$1,$2,$0,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,$3,$1,$1,$1
Data $0,$0,$0,$0,$0,$0,13,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $0,13,$0,$0,$0,18,19,$0,$0,$0,$0,$0,$0,13,$0,$0,$0,10,11,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For C=0 To 7
Channel C To Bob C+11
Next
MV_PLAT_ON(0)=1
MV_PLAT_X(0)=64
MV_PLAT_Y(0)=48
Bob 11,MV_PLAT_X(0),MV_PLAT_Y(0),49
M$=""
M$=M$+" Start: "
M$=M$+" Move 160,0,80 "
M$=M$+" Move 0,128,64 "
M$=M$+" Move -160,0,80 "
M$=M$+" Move 0,-128,64 "
M$=M$+" Jump Start "
Amal 0,M$
MV_PLAT_ON(1)=1
MV_PLAT_X(1)=224
MV_PLAT_Y(1)=176
Bob 12,MV_PLAT_X(1),MV_PLAT_Y(1),49
M$=""
M$=M$+" Start: "
M$=M$+" Move -160,0,80 "
M$=M$+" Move 0,-128,64 "
M$=M$+" Move 160,0,80 "
M$=M$+" Move 0,128,64 "
M$=M$+" Jump Start "
Amal 1,M$
End Proc
Procedure LEVEL_3
PLY_X=16
PLY_Y=48
OLD_PLY_X=16
OLD_PLY_Y=48
Reserve Zone 40
Set Zone 1,0,240 To 319,247
Set Zone 2,0,48 To 47,63
Set Zone 3,0,96 To 47,103
Set Zone 4,0,144 To 47,151
Set Zone 5,0,192 To 47,199
Set Zone 6,272,48 To 319,63
Set Zone 7,272,96 To 319,103
Set Zone 8,272,144 To 319,151
Set Zone 9,272,192 To 319,199
For Y=0 To 255 Step 16
For X=0 To 319 Step 16
Read IMAGE
Paste Bob X,Y,IMAGE+50
Next
Next
Data $0,13,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,12
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,13,$0,$0,$0,$0,$0,13,$0,$0,$0,$0
Data $0,$0,12,$0,$0,$0,$0,$0,$0,$0,$8,$9,12,$0,$0,$0,$0,$0,$0,$0
Data $1,$1,$2,$0,$0,$0,$0,$0,$0,$0,10,11,$0,$0,$0,$0,$0,$3,$1,$1
Data $0,$0,$0,$0,$0,14,15,$0,$0,$0,$0,$0,$0,14,15,$0,$0,$0,$0,$0
Data $0,$0,$0,$0,$0,16,17,$0,$0,13,$0,$0,$0,16,17,$0,$0,$0,$0,$0
Data $1,$1,$2,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$3,$1,$1
Data $0,$0,$0,$0,$0,12,$0,$0,$0,$0,12,$0,$0,12,$0,$0,$0,12,$0,$0
Data $0,12,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,13
Data $1,$1,$2,$0,$0,$0,$0,$0,18,19,$0,13,$0,$0,$0,$0,$0,$3,$1,$1
Data $0,$0,$0,$0,$0,14,15,$0,$0,$0,12,$0,$0,14,15,$0,$0,$0,$0,$0
Data $0,$0,$0,12,$0,16,17,$0,$0,$0,$0,$0,$0,16,17,$0,$0,22,$0,$0
Data $1,$1,$2,$0,$0,$0,$0,$0,13,$0,$0,$0,$0,$0,$0,$0,$0,$3,$1,$1
Data $0,$0,$0,20,21,$0,$0,$0,$0,$0,$0,$0,13,$0,$0,$0,$0,13,$0,$0
Data $0,$0,12,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For C=0 To 7
Channel C To Bob C+11
Next
MV_PLAT_ON(0)=1
MV_PLAT_X(0)=48
MV_PLAT_Y(0)=48
Bob 11,MV_PLAT_X(0),MV_PLAT_Y(0),49
M$=""
M$=M$+" Start: "
M$=M$+" Move 192,0,96 "
M$=M$+" Move -192,0,96 "
M$=M$+" Jump Start "
Amal 0,M$
MV_PLAT_ON(1)=1
MV_PLAT_X(1)=64
MV_PLAT_Y(1)=96
Bob 12,MV_PLAT_X(1),MV_PLAT_Y(1),49
M$=""
M$=M$+" Start: "
M$=M$+" Move 176,0,88 "
M$=M$+" Move -192,0,96 "
M$=M$+" Move 16,0,8 "
M$=M$+" Jump Start "
Amal 1,M$
MV_PLAT_ON(2)=1
MV_PLAT_X(2)=80
MV_PLAT_Y(2)=144
Bob 13,MV_PLAT_X(2),MV_PLAT_Y(2),49
M$=""
M$=M$+" Start: "
M$=M$+" Move 160,0,80 "
M$=M$+" Move -192,0,96 "
M$=M$+" Move 32,0,16 "
M$=M$+" Jump Start "
Amal 2,M$
MV_PLAT_ON(3)=1
MV_PLAT_X(3)=96
MV_PLAT_Y(3)=192
Bob 14,MV_PLAT_X(3),MV_PLAT_Y(3),49
M$=""
M$=M$+" Start: "
M$=M$+" Move 144,0,72 "
M$=M$+" Move -192,0,96 "
M$=M$+" Move 48,0,24 "
M$=M$+" Jump Start "
Amal 3,M$
End Proc
Procedure LEVEL_4
PLY_X=16
PLY_Y=48
OLD_PLY_X=16
OLD_PLY_Y=48
Reserve Zone 40
Set Zone 1,0,240 To 319,247
Set Zone 2,0,48 To 47,55
Set Zone 3,272,192 To 319,199
For Y=0 To 255 Step 16
For X=0 To 319 Step 16
Read IMAGE
Paste Bob X,Y,IMAGE+50
Next
Next
Data $0,14,15,$0,$0,$0,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,$0,$0,$0
Data 13,16,17,$0,$0,$0,$0,13,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,12
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $1,$1,$2,$0,$0,13,$0,$0,$0,$0,$0,13,$0,$0,12,$0,$0,$0,$0,$0
Data $0,$0,13,$0,$0,$0,18,19,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$4,$5,$0,$0,$0,$0,$0
Data $0,13,$0,$0,12,$0,$0,$0,$0,$0,$0,$0,$0,$6,$7,13,$0,$0,12,$0
Data $0,$0,$0,$0,$0,10,11,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $0,$0,$0,$0,$0,$0,$0,13,$0,$0,$0,13,$0,$0,$0,$0,$0,$0,$0,13
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,12,$0,$0,14,15,$0
Data $0,$0,12,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,16,17,$0
Data 13,$0,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $0,$0,$0,$0,$0,13,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$3,$1,$1
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,22,$0,$0,$0,$0,$0,13,$0,$0,$0,$0
Data $0,$0,13,$0,$0,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,$0,$0,13,$0
Data $1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For C=0 To 7
Read X,Y,X2,Y2
PLAT_ON(C)=1
Set Zone 33+C,X,Y To X2,Y2
Bob 3+C,X,Y,
Next
Data 48,96,63,103
Data 128,96,143,103
Data 48,192,63,199
Data 128,192,143,199
Data 176,48,191,55
Data 256,48,271,55
Data 176,144,191,151
Data 256,144,271,151
End Proc
Procedure LEVEL_5
PLY_X=88
PLY_Y=128
OLD_PLY_X=88
OLD_PLY_Y=128
Reserve Zone 40
Set Zone 1,0,240 To 319,247
Set Zone 2,48,128 To 127,135
Set Zone 3,192,128 To 271,135
For Y=0 To 255 Step 16
For X=0 To 319 Step 16
Read IMAGE
Paste Bob X,Y,IMAGE+50
Next
Next
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,13,$0,$0,$0,$0,$0,$0,$0,$0,$0,13
Data $0,12,$0,$0,$0,$0,$0,$0,$0,$0,$0,$8,$9,12,$0,$0,$0,$0,$0,$0
Data $0,$0,$0,$0,$0,13,$0,$0,12,$0,$0,10,11,$0,$0,$0,$0,$0,12,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data 13,$0,$0,$0,$0,$0,$0,$0,$0,$0,13,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $0,$0,$0,$0,$4,$5,$0,$0,$0,$0,$0,$0,$0,$0,$4,$5,$0,$0,$0,$0
Data $0,$0,$0,$0,$6,$7,12,$0,$0,$0,$0,$0,$0,$0,$6,$7,$0,$0,$0,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $0,$0,$0,$3,$1,$1,$1,$2,$0,$0,$0,$0,$3,$1,$1,$1,$2,$0,$0,$0
Data $0,$0,$0,$0,14,15,$0,$0,$0,$0,$0,$0,$0,$0,14,15,$0,$0,$0,$0
Data $0,12,$0,$0,16,17,$0,$0,$0,13,$0,$0,$0,12,16,17,$0,$0,$0,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $0,$0,13,$0,$0,$0,12,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,13,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,$0,20,21,$0,$0,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,13,$0,$0,$0,$0
Data $1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For C=0 To 7
Channel C To Bob C+11
Next
MV_PLAT_ON(0)=1
MV_PLAT_X(0)=72
MV_PLAT_Y(0)=48
Bob 11,MV_PLAT_X(0),MV_PLAT_Y(0),49
M$=""
M$=M$+" Start: "
M$=M$+" Move 24,0,24 "
M$=M$+" Move 48,48,48 "
M$=M$+" Move 0,48,48 "
M$=M$+" Move -48,48,48 "
M$=M$+" Move -48,0,48 "
M$=M$+" Move -48,-48,48"
M$=M$+" Move 0,-48,48 "
M$=M$+" Move 48,-48,48 "
M$=M$+" Move 24,0,24 "
M$=M$+" Jump Start "
Amal 0,M$
MV_PLAT_ON(1)=1
MV_PLAT_X(1)=72
MV_PLAT_Y(1)=192
Bob 12,MV_PLAT_X(1),MV_PLAT_Y(1),49
M$=""
M$=M$+" Start: "
M$=M$+" Move -24,0,24 "
M$=M$+" Move -48,-48,48"
M$=M$+" Move 0,-48,48 "
M$=M$+" Move 48,-48,48 "
M$=M$+" Move 48,0,48 "
M$=M$+" Move 48,48,48 "
M$=M$+" Move 0,48,48 "
M$=M$+" Move -48,48,48 "
M$=M$+" Move -24,0,24 "
M$=M$+" Jump Start "
Amal 1,M$
MV_PLAT_ON(2)=1
MV_PLAT_X(2)=288
MV_PLAT_Y(2)=120
Bob 13,MV_PLAT_X(2),MV_PLAT_Y(2),49
M$=""
M$=M$+" Start: "
M$=M$+" Move 0,24,24 "
M$=M$+" Move -48,48,48 "
M$=M$+" Move -48,0,48 "
M$=M$+" Move -48,-48,48"
M$=M$+" Move 0,-48,48 "
M$=M$+" Move 48,-48,48 "
M$=M$+" Move 48,0,48 "
M$=M$+" Move 48,48,48 "
M$=M$+" Move 0,24,24 "
M$=M$+" Jump Start "
Amal 2,M$
MV_PLAT_ON(3)=1
MV_PLAT_X(3)=144
MV_PLAT_Y(3)=120
Bob 14,MV_PLAT_X(3),MV_PLAT_Y(3),49
M$=""
M$=M$+" Start: "
M$=M$+" Move 0,-24,24 "
M$=M$+" Move 48,-48,48 "
M$=M$+" Move 48,0,48 "
M$=M$+" Move 48,48,48 "
M$=M$+" Move 0,48,48 "
M$=M$+" Move -48,48,48 "
M$=M$+" Move -48,0,48 "
M$=M$+" Move -48,-48,48"
M$=M$+" Move 0,-24,24 "
M$=M$+" Jump Start "
Amal 3,M$
End Proc
Procedure LEVEL_6
PLY_X=160
PLY_Y=48
OLD_PLY_X=160
OLD_PLY_Y=48
Reserve Zone 40
Set Zone 1,0,240 To 319,247
Set Zone 2,0,48 To 47,55
Set Zone 3,0,96 To 47,103
Set Zone 4,0,144 To 47,151
Set Zone 5,0,192 To 47,199
Set Zone 6,80,48 To 111,55
Set Zone 7,80,96 To 111,103
Set Zone 8,80,144 To 111,151
Set Zone 9,80,192 To 111,199
Set Zone 10,144,48 To 175,55
Set Zone 11,144,96 To 175,103
Set Zone 12,144,144 To 175,151
Set Zone 13,144,192 To 175,199
Set Zone 14,208,48 To 239,55
Set Zone 15,208,96 To 239,103
Set Zone 16,208,144 To 239,151
Set Zone 17,208,192 To 239,199
Set Zone 18,272,48 To 319,55
Set Zone 19,272,96 To 319,103
Set Zone 20,272,144 To 319,151
Set Zone 21,272,192 To 319,199
For Y=0 To 255 Step 16
For X=0 To 319 Step 16
Read IMAGE
Paste Bob X,Y,IMAGE+50
Next
Next
Data $0,$0,$0,$0,$0,14,15,$0,$0,14,15,$0,$0,14,15,$0,$0,$0,$0,$0
Data 13,$0,12,$0,$0,16,17,$0,$0,16,17,$0,13,16,17,$0,$0,13,$0,$0
Data $0,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $1,$1,$2,$0,$0,$3,$2,$0,$0,$3,$2,$0,$0,$3,$2,$0,$0,$3,$1,$1
Data $0,$0,13,$0,$0,$4,$5,$0,13,$0,$0,12,$0,$0,$0,12,$0,$0,$0,$0
Data $0,$0,$0,12,$0,$6,$7,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $1,$1,$2,$0,$0,$3,$2,$0,$0,$3,$2,$0,$0,$3,$2,$0,$0,$3,$1,$1
Data $0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,13,$0,$0,$0,$0,$0,$0,13,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,10,11,$0,12,$0,$0,$0,$0,$0,$0,$0
Data $1,$1,$2,$0,$0,$3,$2,$0,$0,$3,$2,$0,$0,$3,$2,$0,$0,$3,$1,$1
Data $0,13,$0,$0,18,19,$0,$0,12,$0,$0,$0,$0,$0,13,$0,$0,$0,$0,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,12,$0,$0
Data $1,$1,$2,$0,$0,$3,$2,$0,$0,$3,$2,$0,$0,$3,$2,$0,$0,$3,$1,$1
Data $0,$0,$0,12,$0,$0,13,$0,$0,$0,$0,$0,$0,12,22,$0,$0,$0,$0,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For C=0 To 7
Channel C To Bob C+11
Next
MV_PLAT_ON(0)=1
MV_PLAT_X(0)=48
MV_PLAT_Y(0)=48
Bob 11,MV_PLAT_X(0),MV_PLAT_Y(0),49
M$=""
M$=M$+" Start: "
M$=M$+" Move 0,48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,-48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,-48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,-48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Jump Start "
Amal 0,M$
MV_PLAT_ON(1)=1
MV_PLAT_X(1)=112
MV_PLAT_Y(1)=96
Bob 12,MV_PLAT_X(1),MV_PLAT_Y(1),49
M$=""
M$=M$+" Start: "
M$=M$+" Move 0,48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,-48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,-48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,-48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Jump Start "
Amal 1,M$
MV_PLAT_ON(2)=1
MV_PLAT_X(2)=176
MV_PLAT_Y(2)=144
Bob 13,MV_PLAT_X(2),MV_PLAT_Y(2),49
M$=""
M$=M$+" Start: "
M$=M$+" Move 0,48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,-48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,-48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,-48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Jump Start "
Amal 2,M$
MV_PLAT_ON(3)=1
MV_PLAT_X(3)=240
MV_PLAT_Y(3)=192
Bob 14,MV_PLAT_X(3),MV_PLAT_Y(3),49
M$=""
M$=M$+" Start: "
M$=M$+" Move 0,-48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,-48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,-48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Move 0,48,24 "
M$=M$+" Move 0,0,16 "
M$=M$+" Jump Start "
Amal 3,M$
End Proc
Procedure LEVEL_7
PLY_X=160
PLY_Y=80
OLD_PLY_X=160
OLD_PLY_Y=80
Reserve Zone 40
Set Zone 1,0,240 To 319,247
Set Zone 2,128,80 To 191,87
For Y=0 To 255 Step 16
For X=0 To 319 Step 16
Read IMAGE
Paste Bob X,Y,IMAGE+50
Next
Next
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $0,$0,13,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,13,$0,12,$0,$0,$0
Data $0,$0,14,15,12,$0,$0,$0,$0,14,15,$0,$0,$0,22,$0,14,15,13,$0
Data $0,$0,16,17,$0,$0,$0,13,$0,16,17,$0,12,$0,$0,$0,16,17,$0,12
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data 12,$8,$9,$0,$0,$0,$0,$0,$3,$1,$1,$2,$0,$0,$0,$0,$0,$0,$0,$0
Data $0,10,11,$4,$5,$0,$4,$5,$0,$4,$5,12,$4,$5,$0,$4,$5,$0,$0,$0
Data $0,$0,13,$6,$7,$0,$6,$7,$0,$6,$7,$0,$6,$7,$0,$6,$7,$0,$0,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,$0
Data $0,12,$0,$0,$0,13,$0,$0,$0,$0,$0,$0,$0,20,21,$0,$0,$0,$0,$0
Data $0,$0,$0,18,19,$0,$0,13,$0,$0,$0,13,$0,$0,$0,$0,$0,$0,12,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data 13,$0,$0,$0,$0,12,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,13,$0,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,$0,$0,$0
Data $1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For C=0 To 7
X=96+(C*16)
X2=X+15
PLAT_ON(C)=1
Set Zone 33+C,X,144 To X2,159
Bob 3+C,X,144,
Next
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For C=0 To 7
Channel C To Bob C+11
Next
MV_PLAT_ON(0)=1
MV_PLAT_X(0)=0
MV_PLAT_Y(0)=192
Bob 11,MV_PLAT_X(0),MV_PLAT_Y(0),49
M$=""
M$=M$+" Start: "
M$=M$+" Move 288,0,144 "
M$=M$+" Move -288,0,144"
M$=M$+" Jump Start "
Amal 0,M$
End Proc
Procedure LEVEL_8
PLY_X=120
PLY_Y=96
OLD_PLY_X=120
OLD_PLY_Y=96
Reserve Zone 40
Set Zone 1,0,240 To 319,247
Set Zone 2,0,96 To 144,103
Set Zone 3,176,96 To 319,103
Set Zone 4,0,192 To 31,199
Set Zone 5,272,192 To 319,199
For Y=0 To 255 Step 16
For X=0 To 319 Step 16
Read IMAGE
Paste Bob X,Y,IMAGE+50
Next
Next
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,12,$0,$0,$0,$0
Data $0,14,15,$0,14,15,$0,$0,$0,$4,$5,$0,$0,$0,14,15,$0,14,15,$0
Data $0,16,17,$0,16,17,$0,$0,13,$6,$7,$0,13,$0,16,17,$0,16,17,$0
Data $0,$0,13,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,$0,$0,$0,$0,$0,12
Data $0,$0,$0,$0,$0,$0,$0,18,19,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0
Data $1,$1,$1,$1,$1,$1,$1,$1,$2,$0,$0,$3,$1,$1,$1,$1,$1,$1,$1,$1
Data $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $0,$0,12,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,13,$0,$0
Data $0,$0,$0,$0,$1,$0,$0,$1,$0,$0,$0,$0,$1,$0,$0,$1,$0,$0,$8,$9
Data $0,$0,$0,$0,$0,13,$0,$0,$0,12,$0,$0,$0,$0,12,$0,$0,$0,10,11
Data $0,$0,$0,$0,$0,$0,22,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Data $1,$2,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,13,$0,$0,$0,$0,$3,$1,$1
Data $0,$0,$0,12,$0,$0,$0,$0,13,$0,$0,$0,$0,$0,$0,$0,13,$0,12,$0
Data 13,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,12,$0,$0,$0,$0,$0,$0,$0,$0
Data $1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1,$1
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PLAT_ON(0)=1
Set Zone 33,64,144 To 79,151
Bob 3,64,144,
PLAT_ON(1)=1
Set Zone 34,112,144 To 127,151
Bob 4,112,144,
PLAT_ON(2)=1
Set Zone 35,192,144 To 207,151
Bob 5,192,144,
PLAT_ON(3)=1
Set Zone 36,240,144 To 255,151
Bob 6,240,144,
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For C=0 To 7
Channel C To Bob C+11
Next
MV_PLAT_ON(0)=1
MV_PLAT_X(0)=32
MV_PLAT_Y(0)=192
Bob 11,MV_PLAT_X(0),MV_PLAT_Y(0),49
M$=""
M$=M$+" Start: "
M$=M$+" Move 48,0,24 "
M$=M$+" Move -48,0,24 "
M$=M$+" Jump Start "
Amal 0,M$
MV_PLAT_ON(1)=1
MV_PLAT_X(1)=160
MV_PLAT_Y(1)=192
Bob 12,MV_PLAT_X(1),MV_PLAT_Y(1),49
M$=""
M$=M$+" Start: "
M$=M$+" Move -48,0,24 "
M$=M$+" Move 48,0,24 "
M$=M$+" Jump Start "
Amal 1,M$
MV_PLAT_ON(2)=1
MV_PLAT_X(2)=192
MV_PLAT_Y(2)=192
Bob 13,MV_PLAT_X(2),MV_PLAT_Y(2),49
M$=""
M$=M$+" Start: "
M$=M$+" Move 48,0,24 "
M$=M$+" Move -48,0,24 "
M$=M$+" Jump Start "
Amal 2,M$
End Proc
Procedure LEVEL_START
Screen Copy Logic To Physic
If TIME>0 Then Dec TIME
DISPLAY_TIME
Bob Clear
Bob 0,SPOT_X,SPOT_Y,1
Bob 1,PLY_X,PLY_Y,2
For C=0 To 7
FRAME=PLAT_DIS(C)+42
Bob C+3,,,FRAME
Next
Bob Draw
Screen Swap
Wait Vbl
Fade 5,$0,$632,$521,$410,$300,$5,$3,$2,$555,$444,$333,$222,$111,$0,$800,$254,$111,$E97,$D64,$A31,$700,$3A,$18,$5,$EEE,$BBB,$888,$555,$333,$222,$F00,$5A9
Wait 75
End Proc
Procedure TEST_JOYSTICK
CONTROL=Joy(1)
' UP
If CONTROL and 1
If Y_SPD=0 and JUMP_FLAG=0
Y_SPD=-8
JUMP_FLAG=1
FALL=0
End If
End If
' RIGHT
If CONTROL and 4
Dec X_MOVE
Else
If X_MOVE<0 : Inc X_MOVE : End If
End If
' LEFT
If CONTROL and 8
Inc X_MOVE
Else
If X_MOVE>0 : Dec X_MOVE : End If
End If
If X_MOVE>FULL_X_SPD*4 Then X_MOVE=FULL_X_SPD*4
If X_MOVE<-FULL_X_SPD*4 Then X_MOVE=-FULL_X_SPD*4
X_SPD=X_MOVE/4
End Proc
Procedure MOVE_PLATFORMS
For C=0 To 7
If MV_PLAT_ON(C)=1
MV_PLAT_DIR_X(C)=X Bob(C+11)-MV_PLAT_X(C)
MV_PLAT_DIR_Y(C)=Y Bob(C+11)-MV_PLAT_Y(C)
MV_PLAT_X(C)=X Bob(C+11)
MV_PLAT_Y(C)=Y Bob(C+11)
Set Zone C+25,MV_PLAT_X(C),MV_PLAT_Y(C) To MV_PLAT_X(C)+31,MV_PLAT_Y(C)+9
End If
Next
End Proc
Procedure TEST_FOR_PLATFORM
BLOCK_COL=Zone(PLY_X,PLY_Y)
If Y_SPD<0 Then BLOCK_COL=0
If BLOCK_COL>32
If PLAT_ON(BLOCK_COL-33)<1 : BLOCK_COL=0 : End If
End If
If BLOCK_COL=0
Inc FALL
If FALL>1
FALL=0
Inc Y_SPD
End If
End If
If BLOCK_COL>0
If BLOCK_COL>24 and BLOCK_COL<33
JUMP_FLAG=0
OLD_PLY_Y=MV_PLAT_Y(BLOCK_COL-25)
Add OLD_PLY_Y,MV_PLAT_DIR_Y(BLOCK_COL-25)
If Y_SPD=0
If X_SPD=0
Add OLD_PLY_X,MV_PLAT_DIR_X(BLOCK_COL-25)
End If
Else
Y_SPD=0
SKID_FLAG=1
End If
Else
JUMP_FLAG=0
LANDED_FLAG=1
If Y_SPD<>0
Y_SPD=0
SKID_FLAG=1
End If
End If
End If
If BLOCK_COL>32
Inc PLAT_DIS(BLOCK_COL-33)
If PLAT_DIS(BLOCK_COL-33)>5
PLAT_ON(BLOCK_COL-33)=-55
End If
End If
For C=0 To 7
If PLAT_ON(C)<1
Inc PLAT_ON(C)
If PLAT_ON(C)>-5
Dec PLAT_DIS(C)
End If
End If
Next
If X_SPD=0 and Y_SPD=0 and JUMP_FLAG=0
WOBBLE_COL1=Zone(PLY_X-8,PLY_Y)
WOBBLE_COL2=Zone(PLY_X+8,PLY_Y)
If WOBBLE_COL1>32
If PLAT_ON(WOBBLE_COL1-33)<1 : WOBBLE_COL1=0 : End If
End If
If WOBBLE_COL2>32
If PLAT_ON(WOBBLE_COL2-33)<1 : WOBBLE_COL2=0 : End If
End If
If WOBBLE_COL1=0 or WOBBLE_COL2=0
EDGE_FLAG=1
If WOBBLE_COL2=0
EDGE_FLAG=2
End If
Else
EDGE_FLAG=0
WOBBLE=0
End If
End If
If Y_SPD>FULL_Y_SPD Then Y_SPD=FULL_Y_SPD
If Y_SPD<-FULL_Y_SPD Then Y_SPD=-FULL_Y_SPD
End Proc
Procedure FIND_PLY_FRAME
If JUMP_FLAG=0 and Y_SPD=0
If CONTROL and %1100
If CONTROL and %1000 : MOVE_FRAME=2 : End If
If CONTROL and %100 : MOVE_FRAME=15 : End If
Inc JOG_FRAME : If JOG_FRAME>15 : JOG_FRAME=0 : End If
ANI=JOG_FRAME/4
Else
If X_MOVE<>0
ANI=4
Else
ANI=0
End If
End If
If ANI=0 or ANI=2 : PLY_FRAME=MOVE_FRAME : End If
If ANI=1 : PLY_FRAME=MOVE_FRAME+1 : End If
If ANI=3 : PLY_FRAME=MOVE_FRAME+2 : End If
If ANI=4 : PLY_FRAME=MOVE_FRAME+3 : End If
If Abs(X_MOVE)=10 : SKID_FLAG=1 : End If
Else
If CONTROL and %1100
If X_MOVE>0 : MOVE_FRAME=2 : End If
If X_MOVE<0 : MOVE_FRAME=15 : End If
End If
PLY_FRAME=MOVE_FRAME+4
End If
If EDGE_FLAG=1 and X_SPD=0 and Y_SPD=0 and JUMP_FLAG=0
Inc WOBBLE : If WOBBLE>3 : WOBBLE=0 : End If
PLY_FRAME=MOVE_FRAME+9+WOBBLE
End If
If EDGE_FLAG=2 and X_SPD=0 and Y_SPD=0 and JUMP_FLAG=0
Inc WOBBLE : If WOBBLE>3 : WOBBLE=0 : End If
PLY_FRAME=MOVE_FRAME+5+WOBBLE
End If
End Proc
Procedure FIND_NEW_CO_ORDS
PLY_X=OLD_PLY_X+X_SPD
PLY_Y=OLD_PLY_Y+Y_SPD
If LANDED_FLAG=1
LANDED_FLAG=0
PLY_Y=(PLY_Y/8)*8
End If
If PLY_X>311
X_MOVE=0
X_SPD=0
PLY_X=311
End If
If PLY_X<8
X_MOVE=0
X_SPD=0
PLY_X=8
End If
Inc SPOT_MOVE
If SPOT_MOVE>SPOT_SLOW
SPOT_MOVE=0
If SPOT_X>PLY_X : Add SPOT_X,-SPOT_SPD : End If
If SPOT_X<PLY_X : Add SPOT_X,SPOT_SPD : End If
If SPOT_Y>PLY_Y : Add SPOT_Y,-SPOT_SPD : End If
If SPOT_Y<PLY_Y : Add SPOT_Y,SPOT_SPD : End If
End If
OLD_PLY_X=PLY_X
OLD_PLY_Y=PLY_Y
End Proc
Procedure SKID_PUFFS
If SKID_FRAME>0
Dec SKID_FRAME
Else
If SKID_FLAG=1
SKID_FLAG=0
SKID_X=PLY_X
SKID_Y=PLY_Y
SKID_FRAME=6
If MOVE_FRAME=2 : SKID_ADD=35 : End If
If MOVE_FRAME=15 : SKID_ADD=28 : End If
End If
End If
End Proc
Procedure CHECK_FOR_SPOT_COL
If Abs((SPOT_X/8)-(PLY_X/8))<2
If Abs((SPOT_Y/8)-(PLY_Y/8))<2
DEAD=1
End If
End If
End Proc
Procedure FIND_TIME
If TIME>0 Then Dec TIME
DISPLAY_TIME
End Proc
Procedure MOVE_ALL
Bob Clear
Bob 0,SPOT_X,SPOT_Y,1
Bob 1,PLY_X,PLY_Y,PLY_FRAME
For C=0 To 7
FRAME=PLAT_DIS(C)+42
Bob C+3,,,FRAME
Next
If SKID_FRAME>0
Set Bob 2,0,%1111,0
Bob 2,SKID_X,SKID_Y,SKID_FRAME+SKID_ADD
Else
Bob Off 2
End If
Synchro
Bob Draw
Screen Swap
Wait Vbl
End Proc
Procedure CHECK_KEYBOARD
P_PRESS=Key State(25)
ESC_PRESS=Key State(69)
If P_PRESS=-1 Then PAUSE
If ESC_PRESS=-1 Then QUIT
End Proc
Procedure PAUSE
Repeat
P_PRESS=Key State(25)
Until P_PRESS=0
Repeat
P_PRESS=Key State(25)
Until P_PRESS=-1
Repeat
P_PRESS=Key State(25)
Until P_PRESS=0
End Proc
Procedure QUIT
Repeat
ESC_PRESS=Key State(25)
Until ESC_PRESS=0
QUIT_FLAG=1
End Proc
Procedure DISPLAY_TIME
TENS=TIME/100
UNITS=(TIME/10)-(TENS*10)
Sprite 0,263,44,92
Sprite 4,297,44,TENS+82
Sprite 6,305,44,UNITS+82
Sprite Update
End Proc
Procedure DEATH_SCENE
Amal Off
Bob Off 2
MAN_ANIMATE[MOVE_FRAME,0]
Fade 2,$0,$E97,$D64,$A31,$700,$3A,$18,$5,$EEE,$BBB,$888,$555,$333,$222,$F00,$5A9,$111,$E97,$D64,$A31,$700,$3A,$18,$5,$EEE,$BBB,$888,$555,$333,$222,$F00,$5A9
Wait 30
MAN_ANIMATE[74,20]
For C=1 To 4
MAN_ANIMATE[74,4]
MAN_ANIMATE[75,4]
MAN_ANIMATE[74,4]
MAN_ANIMATE[76,4]
Next
MAN_ANIMATE[74,10]
For C=1 To 8
MAN_ANIMATE[73,2]
Sam Play 2
MAN_ANIMATE[74,2]
Next
Sam Play 3
MAN_ANIMATE[77,60]
MAN_ANIMATE[78,20]
For C=1 To 8
MAN_ANIMATE[73,2]
Sam Play 2
MAN_ANIMATE[78,2]
Next
Sam Play 4
MAN_ANIMATE[79,60]
MAN_ANIMATE[80,20]
For C=1 To 8
MAN_ANIMATE[73,2]
Sam Play 2
MAN_ANIMATE[80,2]
Next
Sam Play 5
MAN_ANIMATE[81,200]
Fade 5
Wait 100
Cls 0
Pen 1 : Paper 0
Locate 0,15
Centre "GAME OVER"
Screen Swap
Fade 2,$0,$FFF
Wait 75
Fade 2
Wait 50
Sprite Off 0
Sprite Off 4
Sprite Off 6
Update
End Proc
Procedure MAN_ANIMATE[FRM,SPD]
Bob Clear
Bob 1,,,FRM
Bob Draw
Screen Swap
If SPD=0
Wait Vbl
Else
Wait SPD
End If
End Proc
Procedure SURVIVED_SCENE
Amal Off
Track Stop
Sam Play 1
Wait 50
Fade 5
Wait 100
Cls 0
Pen 1 : Paper 0
Locate 0,8
Centre "WELL DONE!"
Locate 0,9
Centre "~~~~~~~~~~"
Locate 0,13
Centre "YOU SURVIVED THAT LEVEL OKAY."
Locate 0,15
Centre "NOW GET READY FOR THE NEXT SCREEN."
Pen 2 : Paper 0
Locate 0,23
Centre "PRESS FIRE TO CONTINUE"
Screen Swap
Fade 2,$0,$FFF
Wait 30
F$="(000,2)(222,2)(444,2)(666,2)(888,2)(AAA,2)(CCC,2)"
F$=F$+"(EEE,2)(CCC,2)(AAA,2)(888,2)(666,2)(444,2)(222,2)"
Flash 2,F$
Repeat
Until Fire(1)
Flash Off
Fade 2
Wait 30
End Proc
Procedure QUIT_SCENE
Amal Off
Track Stop
Wait 5
Fade 1
Wait 30
Sprite Off 0
Sprite Off 4
Sprite Off 6
Update
End Proc
Procedure FINISHING_SCENE
Amal Off
Track Stop
Sam Play 1
Wait 50
Fade 5
Wait 100
Sprite Off 0
Sprite Off 4
Sprite Off 6
Update
Load "Escape:Graphic_Data/Finishing.Abk",6
Unpack 6 To 0
Erase 6
Erase 1
Erase 3
Erase 5
Track Load "Escape:Sound_Data/Finishing",3
Track Play
Fade 5,$0,$EE0,$EC0,$EA0,$E80,$E60,$E40,$E20,$E00,$C00,$A00,$800,$600,$400,$200,$FFF
Wait 1000
Repeat
Until Fire(1)
Fade 5
Wait 100
Track Stop
Erase 3
Screen Close 0
End Proc
Procedure CHECK_FOR_NTSC
If Ntsc
Screen Open 0,640,200,2,Hires
Screen Display 0,128,40,640,200
Curs Off : Flash Off : Hide
Palette $0,$0
For C=1 To 2
Cls 0
For Y=0 To 24 Step 2
Read TXT$
Locate ,Y
Centre Upper$(TXT$)
Next
Fade 1,$0,$FFF
Wait 30
Repeat
Until Fire(1)
Fade 2
Wait 50
Next
End
End If
Data ""
Data "ntsc display detected!"
Data ""
Data "unfortunatly this product has been designed specifically for a pal"
Data "display and will therefore not run properly on your current display."
Data "If you feel there is a need for an ntsc version then you can contact"
Data "thermogenesis at the address i am about to give. if there is a great"
Data "enough demand a suitable version will be released."
Data ""
Data "sorry for the inconvenience."
Data ""
Data "press fire for our address!"
Data ""
Data ""
Data "if you think an ntsc version should be released or you have"
Data "any other reason please write to:"
Data ""
Data ""
Data "thermogenesis "
Data "9 hazelden gardens"
Data "muirend "
Data "glasgow "
Data "scotland "
Data "g44 3hq "
Data ""
Data ""
End Proc
Procedure PD_MESSAGE
Screen Open 0,640,256,2,Hires
Screen Display 0,128,40,640,256
Curs Off : Flash Off : Hide
Palette $0,$0
Cls 0
For Y=0 To 31 Step 2
Read TXT$
Locate ,Y
Centre Upper$(TXT$)
Next
Fade 1,$0,$FFF
Wait 30
Repeat
If Jdown(1) Then SKIP_FLAG=1
Until Fire(1)
Fade 2
Wait 50
Data ""
Data "important message"
Data ""
Data "this product is public domain. as such no charge should be"
Data "made for it's purchase other than to cover the cost of"
Data "postage and disks. the contents of this disk should "
Data "not be altered in any way for it's distribution."
Data ""
Data "please feel free to copy this disk and pass it on to others."
Data ""
Data "please also feel free to contact us at the address given in"
Data "the scrolling message."
Data ""
Data "press fire for the intro"
Data ""
Data "or hold down and press fire to skip the intro."
End Proc
Procedure TG_LOGO_SCENE
Load "Escape:Graphic_Data/TG_Logo.Abk",6
Unpack 6 To 0
Erase 6
Track Load "Escape:Sound_Data/Intro",3
Auto View Off
Double Buffer
Autoback 0
Screen Copy Logic To Physic
Fade 5,$4,$5,$3,$4,$4,$4,$4,$4,$5,$5,$5,$5,$3,$3,$3,$3
For C=1 To 4
Colour Back C
View
Wait 5
Next
Wait 100
Fade 5,,,,,$FFF,,,,$FFF,,,,$FFF
Wait 100
Fade 5,,,,,$4,,,,$5,,,,$3
Wait 100
Screen Copy Logic,0,256,639,326 To Logic,0,92
Screen Swap
Wait Vbl
Wait 100
Fade 1,,,,,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF
Track Play
Wait 15
Fade 5,,,,,$C00,$800,$400,$0,$C00,$800,$400,$0,$C00,$800,$400,$0
Wait 300
Fade 5,,,,,$4,$4,$4,$4,$5,$5,$5,$5,$3,$3,$3,$3
Wait 100
Fade 5
For C=3 To 0 Step -1
Colour Back C
View
Wait 5
Next
Auto View On
Wait 100
End Proc
Procedure VERTICAL_SCROLL
Screen Open 0,320,256,2,Lowres
Screen Display 0,128,48,320,240
Curs Off : Flash Off : Hide : Cls 0
Double Buffer
Autoback 0
Palette $0,$0
Set Rainbow 0,1,238,"","",""
For C=0 To 237
Rain(0,C)=$FFF
Next
For C=0 To 15
CUL=C*$111
For A=0 To 2
Rain(0,(C*3)+A)=CUL
Rain(0,(237-(C*3))-A)=CUL
Next
Next
Rainbow 0,0,49,240
Restore DAT_TXT
Def Scroll 1,0,0 To 320,256,0,-1
Repeat
Read TXT$
If TXT$="end"
FINISHED=1
TXT$=""
End If
Locate 0,30
Centre Upper$(TXT$)
For C=0 To 7
Scroll 1
Screen Swap
Wait 2
Screen Copy Physic To Logic
Next
Until FINISHED=1
For C=0 To 239
Scroll 1
Screen Swap
Wait 2
Screen Copy Physic To Logic
Next
Rainbow Del 0
DAT_TXT:
Data "credits"
Data "~~~~~~~"
Data ""
Data ""
Data ""
Data ""
Data ""
Data ""
Data ""
Data ""
Data "design "
Data "~~~~~~ "
Data ""
Data "richard jobling"
Data ""
Data "+"
Data ""
Data "grant mcallister"
Data ""
Data ""
Data ""
Data ""
Data ""
Data ""
Data ""
Data ""
Data "programming + graphics"
Data "~~~~~~~~~~~~~~~~~~~~~~"
Data ""
Data "richard jobling"
Data ""
Data ""
Data ""
Data ""
Data ""
Data ""
Data ""
Data ""
Data "sound effects + music"
Data "~~~~~~~~~~~~~~~~~~~~~"
Data ""
Data "grant mcallister"
Data "end"
End Proc
Procedure PRISONER_SCENE
Load "Escape:Graphic_Data/Prisoner.Abk",6
Unpack 6 To 0
Erase 6
For X=0 To 959 Step 320
Screen Offset 0,X,0
Fade 1,$0,$FCA,$FB9,$F97,$E86,$C64,$A42,$710,$600,$400,$5F,$4F,$3D,$2A,$7,$4,$FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888,$777,$666,$555,$444,$333,$222,$111,$0
Wait 150
Palette $0,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF,$FFF
Wait 1
Fade 2,$0,$AAA,$999,$888,$777,$666,$555,$444,$333,$111,$777,$666,$555,$444,$222,$111,$FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888,$777,$666,$555,$444,$333,$222,$111,$0
Wait 150
Fade 1
Wait 15
Next
End Proc
Procedure SET_UP_SCROLLER
Screen Open 1,352,16,2,Lowres
Screen Display 1,128,288,320,8
Screen Offset 1,16,0
Curs Off : Flash Off : Hide : Cls 0
Double Buffer
Autoback 0
Palette $0,$FFF
SCRL_POS=0
SCRL_SPD=2
SCRL_X=0
Def Scroll 1,0,0 To 352,8,SCRL_SPD,0
SCRL_TXT$=""
SCRL_TXT$=SCRL_TXT$+" press fire to start!"
SCRL_TXT$=SCRL_TXT$+" you can control this scroller using the joystick."
SCRL_TXT$=SCRL_TXT$+" use left and right, with down to pause."
SCRL_TXT$=SCRL_TXT$+" in game use the joystick left and right to make"
SCRL_TXT$=SCRL_TXT$+" billy run and push up to jump."
SCRL_TXT$=SCRL_TXT$+" you can also press p to pause or esc to quit."
SCRL_TXT$=SCRL_TXT$+" if you wish to contact thermogenesis for any"
SCRL_TXT$=SCRL_TXT$+" reason please write to us at the following address:"
SCRL_TXT$=SCRL_TXT$+" 9 hazelden gardens, muirend, glasgow, scotland,"
SCRL_TXT$=SCRL_TXT$+" g44 3hq tel: 041 637-8186 okay! on with the scroller!"
SCRL_TXT$=SCRL_TXT$+" it's me richard speaking. at last i have finished all the hard work for this"
SCRL_TXT$=SCRL_TXT$+" game. progress was slowed a bit when i had"
SCRL_TXT$=SCRL_TXT$+" to go on holiday. however i'm back from"
SCRL_TXT$=SCRL_TXT$+" cyprus now and have spent the last three days"
SCRL_TXT$=SCRL_TXT$+" putting the finishing touches to this game."
SCRL_TXT$=SCRL_TXT$+" okay! so what did we use to make it? we used the following..."
SCRL_TXT$=SCRL_TXT$+" hardware: 1 amiga 500+, 1 amiga 600, 2 zappo"
SCRL_TXT$=SCRL_TXT$+" disk drives, 1 philips monitor, 1 commodore monitor, 1 sampler,"
SCRL_TXT$=SCRL_TXT$+" 2 knackered hifis, 1 naksha mouse,"
SCRL_TXT$=SCRL_TXT$+" plenty of disks and a joystick. software:"
SCRL_TXT$=SCRL_TXT$+" amos pro v1.00, amos v1.35 and compiler, dpaint iii, dpaint iv and octamed v3.00."
SCRL_TXT$=SCRL_TXT$+" okay now i think i'll say a few words about the supposed threat"
SCRL_TXT$=SCRL_TXT$+" the amiga is under from pc's and consoles."
SCRL_TXT$=SCRL_TXT$+" first of all lets get one thing straight."
SCRL_TXT$=SCRL_TXT$+" the amiga is not a toy!"
SCRL_TXT$=SCRL_TXT$+" if you buy an amiga the chances are you will play"
SCRL_TXT$=SCRL_TXT$+" games on it. after all who can ignore the likes of"
SCRL_TXT$=SCRL_TXT$+" kick off 2, sensible soccer, project x, alien breed,"
SCRL_TXT$=SCRL_TXT$+" super frog, body blows and all the other superb titles."
SCRL_TXT$=SCRL_TXT$+" however you will almost certainly also do something"
SCRL_TXT$=SCRL_TXT$+" creative with your computer. like music, graphics or programming."
SCRL_TXT$=SCRL_TXT$+" this is why the amiga is so good."
SCRL_TXT$=SCRL_TXT$+" there's no chance of you doing that on a console."
SCRL_TXT$=SCRL_TXT$+" and on the pc it's possible. but never as easy or as much fun!"
SCRL_TXT$=SCRL_TXT$+" pc's were only ever meant for spreadsheets and the like."
SCRL_TXT$=SCRL_TXT$+" even if you do have a pc or console i bet your amiga is used most."
SCRL_TXT$=SCRL_TXT$+" clearly the amiga is the best choice for a teenager with a creative mind."
SCRL_TXT$=SCRL_TXT$+" and if you're not creative then you're a nobody(nintendo owner)."
SCRL_TXT$=SCRL_TXT$+" the release of the a1200 means the amigas future looks great."
SCRL_TXT$=SCRL_TXT$+" errrmmm i think i'll stop now i got a little carried away there."
SCRL_TXT$=SCRL_TXT$+" by the way have you found the cheat yet?"
SCRL_TXT$=SCRL_TXT$+" before i go could i plead with you for some"
SCRL_TXT$=SCRL_TXT$+" feed back to this game. it's important we know what we're doing right"
SCRL_TXT$=SCRL_TXT$+" and what we're doing wrong. donations are also very welcome(sorry but i had to say that)."
SCRL_TXT$=SCRL_TXT$+" i'll now hand you over to"
SCRL_TXT$=SCRL_TXT$+" the musician to say a few words. bye from me..."
SCRL_TXT$=SCRL_TXT$+" "
SCRL_TXT$=SCRL_TXT$+" Hullo its grant here! What do you think of the game? i"
SCRL_TXT$=SCRL_TXT$+" think it turned out quite good myself! The music didn't take terribly"
SCRL_TXT$=SCRL_TXT$+" long to do. of course it did help that richard buggered off to cyprus"
SCRL_TXT$=SCRL_TXT$+" half-way through. it meant that he couldn't bug me about doing music."
SCRL_TXT$=SCRL_TXT$+" Oh and before i forget, for game or demo music write to: grant mcallister,"
SCRL_TXT$=SCRL_TXT$+" 69 cleeves rd, nitshill, glasgow, g53 6nq, scotland. Now that i've got that"
SCRL_TXT$=SCRL_TXT$+" wee plug out of the way... put that friggin' trash off, richard! (sounds"
SCRL_TXT$=SCRL_TXT$+" of depeche mode and hitting). anyway, time for some greets!! Burglartastic greets"
SCRL_TXT$=SCRL_TXT$+" are on they're way to the following: Darren, Kenny, Olly(i suppose),"
SCRL_TXT$=SCRL_TXT$+" Keg, Marco, Marcus, Stuart and Paul(both of them!) and daniel. Oh! I've just"
SCRL_TXT$=SCRL_TXT$+" been reminded by richard that i don't like consoles! In fact i'd"
SCRL_TXT$=SCRL_TXT$+" go as far as to say that i don't like them one little bit! The amiga is best"
SCRL_TXT$=SCRL_TXT$+" and will continue to be the best long after the console fad is gone."
SCRL_TXT$=SCRL_TXT$+" Speaking of consoles, after rik's torrid outburst i thought you might"
SCRL_TXT$=SCRL_TXT$+" like to know that he has a megadrive! Not only that but he has more"
SCRL_TXT$=SCRL_TXT$+" games for it than your average wee console owning pleb! A bit dubious methinks!"
SCRL_TXT$=SCRL_TXT$+" By the way, i was the one who designed the wee guy! don't let richard tell you"
SCRL_TXT$=SCRL_TXT$+" otherwise! Anyway, i've said far too much already so its time for this scrolly to loop!"
SCRL_TXT$=SCRL_TXT$+" "
End Proc
Procedure SET_UP_SCREEN_PIC
Load "Escape:Graphic_Data/Title.Abk",6
Unpack 6 To 0
Erase 6
If SKIP_FLAG=1
Erase 1
Erase 3
Erase 5
Track Load "Escape:Sound_Data/Intro",3
Track Play
End If
If SKIP_FLAG=0
SKIP_FLAG=1
End If
Fade 5,$0,$0,$700,$400,$200,$0,$333,$222,$111,$F00,$E00,$D00,$C00,$B00,$A00,$900
Wait 100
End Proc
Procedure MOVE_SCROLLER
Screen 1
JMOVE=Joy(1)
If(JMOVE and %10)=0
Add SCRL_X,Abs(SCRL_SPD)
If SCRL_X>7
Screen 1
SCRL_X=0
If SCRL_SPD<0
Inc SCRL_POS
Locate 42,0
If SCRL_POS>Len(SCRL_TXT$) : Add SCRL_POS,-Len(SCRL_TXT$) : End If
SCRL_LTR$=Upper$(Mid$(SCRL_TXT$,SCRL_POS,1))
End If
If SCRL_SPD>0
Dec SCRL_POS
Locate 1,0
If SCRL_POS<1 : Add SCRL_POS,Len(SCRL_TXT$) : End If
REAL_POS=SCRL_POS-41
If REAL_POS<1 : Add REAL_POS,Len(SCRL_TXT$) : End If
SCRL_LTR$=Upper$(Mid$(SCRL_TXT$,REAL_POS,1))
End If
Print SCRL_LTR$
If JMOVE and %1100
If JMOVE and %1000 : SCRL_SPD=8 : End If
If JMOVE and %100 : SCRL_SPD=-8 : End If
Def Scroll 1,0,0 To 352,8,SCRL_SPD,0
Else
SCRL_SPD=-2
Def Scroll 1,0,0 To 352,8,SCRL_SPD,0
End If
End If
Scroll 1
Screen Swap 1
Wait Vbl
Screen Copy Physic(1) To Logic(1)
End If
End Proc
Procedure SHUT_DOWN_SCROLL
Screen 1
Fade 1
Wait 15
Screen Close 1
Screen 0
Fade 1
Wait 15
Screen Close 0
End Proc